package com.wang.map;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map接口的使用,
 * 特点:1.存储键值对,2.键不能重复,值可以重复 3.无序(插入顺序),但是自动根据key排序
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        //1.添加
        map.put("b","b1");
        map.put("c","c1");
        map.put("a","a1");
        map.put("b","b2");//注意添加重复的key的时候后面添加的value替换前面的value
        System.out.println(map.size());
        System.out.println(map.toString());
        //2.删除
        //map.remove("b");
        //3.遍历
        //使用keySet集合---key值转为set进行遍历(不包含value,所以不能用iterator进行遍历value,value只能map.get获取)
        Set<String> set = map.keySet();
        for (String s : set) {  //可以写成for(String s:map.keySet())
            System.out.println(s+map.get(s));
        }
        System.out.println("---------------");
        //使用entrySet()进行遍历(entries,就是键值对)[效率要高于keySet,一次性获取key和set,keySet()只是获取了key]
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry);//直接输出键值对
            System.out.println(entry.getKey()+"--"+entry.getValue());//也可以get键值对的key和value
        }
    }
}
